home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / FlashSMS / FlashSMS.jar / FlashSMS.class (.txt)
Encoding:
Java Class File  |  2002-02-09  |  4.4 KB  |  155 lines

  1. import com.siemens.mp.io.File;
  2. import javax.microedition.lcdui.Alert;
  3. import javax.microedition.lcdui.Command;
  4. import javax.microedition.lcdui.CommandListener;
  5. import javax.microedition.lcdui.Display;
  6. import javax.microedition.lcdui.Displayable;
  7. import javax.microedition.lcdui.TextBox;
  8. import javax.microedition.midlet.MIDlet;
  9.  
  10. public class FlashSMS extends MIDlet implements CommandListener {
  11.    static String header = "RPN-FlashSMS";
  12.    private Display display;
  13.    private TextBox text1;
  14.    private Command cmExit;
  15.    private Command cmInfo;
  16.    private Command cmFlashIt;
  17.    private Command cmSave;
  18.    private Alert alert;
  19.    private static final byte[] FLASH_HEAD = new byte[]{11, 11, 0, 0, 0, 7, 6, -111, 102, 49, 1, -127, 0, 17, 0, 0, -127, 0, -16, -1};
  20.    // $FF: renamed from: fn com.siemens.mp.io.File
  21.    private File field_0;
  22.  
  23.    public FlashSMS() {
  24.       this.text1 = new TextBox(header, "", 160, 0);
  25.       this.cmExit = new Command("Exit", 7, 4);
  26.       this.cmInfo = new Command("Info", 1, 3);
  27.       this.cmFlashIt = new Command("FlashThisFile", 1, 2);
  28.       this.cmSave = new Command("SaveAsFlash", 1, 1);
  29.       this.alert = new Alert(header);
  30.       this.field_0 = new File();
  31.       this.display = Display.getDisplay(this);
  32.    }
  33.  
  34.    protected void startApp() {
  35.       this.text1.addCommand(this.cmExit);
  36.       this.text1.addCommand(this.cmInfo);
  37.       this.text1.addCommand(this.cmFlashIt);
  38.       this.text1.addCommand(this.cmSave);
  39.       this.text1.setCommandListener(this);
  40.       this.display.setCurrent(this.text1);
  41.    }
  42.  
  43.    public void commandAction(Command var1, Displayable var2) {
  44.       String var3 = "";
  45.       if (var1 == this.cmExit) {
  46.          this.destroyApp(true);
  47.       } else if (var1 == this.cmInfo) {
  48.          var3 = "FlashSMS by RizaPN\n\nModify SMO File to be a Flash-SMO File\n\nSalam,\nRiza Purwo Nugroho\nJakarta-Indonesia";
  49.       } else if (var1 == this.cmFlashIt) {
  50.          String var4 = this.text1.getString();
  51.          if (File.exists(var4) < 0) {
  52.             var3 = "File " + var4 + " not found in its storage directory !";
  53.          } else {
  54.             try {
  55.                int var5 = this.field_0.open(var4);
  56.                int var6 = this.field_0.length(var5);
  57.                if (var6 == 181) {
  58.                   byte[] var7 = new byte[var6];
  59.                   this.field_0.read(var5, var7, 0, var6);
  60.                   var7[18] = -16;
  61.                   this.field_0.seek(var5, 0);
  62.                   this.field_0.write(var5, var7, 0, var6);
  63.                   var3 = "OK. File " + var4 + " had been modified.";
  64.                   this.text1.setString("");
  65.                } else {
  66.                   var3 = "File " + var4 + " is not a valid SMO File.";
  67.                }
  68.  
  69.                this.field_0.close(var5);
  70.             } catch (Exception var12) {
  71.                var3 = "Error opening file " + var4 + "!";
  72.             }
  73.          }
  74.       } else {
  75.          String var13 = this.text1.getString();
  76.          byte[] var14 = new byte[181];
  77.  
  78.          for(int var15 = 0; var15 < var14.length; ++var15) {
  79.             var14[var15] = -1;
  80.          }
  81.  
  82.          System.arraycopy(FLASH_HEAD, 0, var14, 0, 20);
  83.          int var16 = var13.length();
  84.          byte[] var8 = make7BitString(var13.getBytes(), var16);
  85.          System.arraycopy(var8, 0, var14, 21, var8.length);
  86.          var14[20] = (byte)var16;
  87.  
  88.          try {
  89.             String var9 = "FlashSMS.smo";
  90.             int var10 = this.field_0.open(var9);
  91.             this.field_0.write(var10, var14, 0, var14.length);
  92.             var3 = "OK. Text had been saved as file " + var9;
  93.             this.text1.setString("");
  94.             this.field_0.close(var10);
  95.          } catch (Exception var11) {
  96.             var3 = "Error writing to file";
  97.          }
  98.       }
  99.  
  100.       if (var3 != "") {
  101.          this.alert.setString(var3);
  102.          this.display.setCurrent(this.alert);
  103.       }
  104.  
  105.    }
  106.  
  107.    public static byte[] make7BitString(byte[] var0, int var1) {
  108.       if (var1 == 0) {
  109.          return null;
  110.       } else {
  111.          byte[] var3 = new byte[(var1 + 1) * 7 / 8];
  112.  
  113.          for(int var2 = 0; var2 < var3.length; ++var2) {
  114.             var3[var2] = -1;
  115.          }
  116.  
  117.          int var4 = 0;
  118.          int var5 = 0;
  119.          int var6 = 0;
  120.          int var7 = 0;
  121.  
  122.          while(var6 < var1) {
  123.             int var8 = var0[var6++];
  124.             if (var8 < 0) {
  125.                var8 += 256;
  126.             }
  127.  
  128.             if (var5 == 0) {
  129.                var4 = 0;
  130.                var4 |= var8;
  131.                var5 = 7;
  132.             } else {
  133.                var4 |= var8 << var5;
  134.                var3[var7++] = (byte)(var4 & 255);
  135.                var4 >>= 8;
  136.                --var5;
  137.             }
  138.          }
  139.  
  140.          if (var5 != 0) {
  141.             var3[var7++] = (byte)(var4 & 255);
  142.          }
  143.  
  144.          return var3;
  145.       }
  146.    }
  147.  
  148.    protected void pauseApp() {
  149.    }
  150.  
  151.    protected void destroyApp(boolean var1) {
  152.       ((MIDlet)this).notifyDestroyed();
  153.    }
  154. }
  155.